package cn.kgc.javaweb.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * 请求的生命周期    从创建到销毁的过程
 * 1.调用无参构造 创建ServletLife的对象
 * 2.调用init() 完成初始化
 * 3.接受请求 调用service()
 * 4.服务器正常关闭  调用destroy() 释放资源
 *
 * @author: mosin
 * @version: v1.0  2022/3/17
 */
@WebServlet("/life")
public class ServletLife extends HttpServlet {
    /**
     * 第一次请求时 会调用该构造方法 创建对象  对象只会创建一次
     */
    public  ServletLife(){

        System.out.println("ServletLife对象被创建！");
    }

    /**
     * 第一次对象创建完成后 自动调用init()  完成初始化
     * @throws ServletException
     */
    @Override
    public void init() throws ServletException {
        System.out.println("init()");
    }

    /**
     * 请求匹配一次调用一次
     * @param req
     * @param resp
     * @throws ServletException
     * @throws IOException
     */

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("service()");
    }

    /**
     *服务器正常关闭时  调用该方法 释放资源
     */
    @Override
    public void destroy() {
        System.out.println("destroy()");
    }
}
